<div class="box-page-container">
  <div class="box-page-header">
    <div class="title">Страницы</div>
    <div class="other-controls right">
    </div>
  </div>
  <div id="page-helper" class="box-page-helper-content">
    <p>Управление страницами сайта.</p>
  </div>
  <div class="box-page-body">
    <div class="box-message" id="message" style="display: none"></div>
    <table class="table">
      <thead>
        <tr>
          <th width="25px">ID</th>
          <th width="230px">Заголовок</th>
          <th>Адресс страницы</th>
          <th width="80px">Автор</th>
          <th width="80px">Создано</th>
          <th width="30px"></th>
        </tr>
      </thead>
      <tbody>
        <?php if (count($this->pages)): foreach ($this->pages as $page): ?>
          <tr id="<?php echo $page->id ?>">
            <td><?php echo $page->id ?></td>
            <td><?php echo $page->title ?></td>
            <td><?php echo $page->url ?></td>
            <td><?php echo $page->findParentRow('Model_User')->name ?></td>
            <td><?php 
           		$date = new Zend_Date($page->created, false, Pidguin_Application::getInstance()->getLocale());
            	echo $date->toString('dd MMMM YYYYг.');
            ?></td>
            <td>
              <div class="control-bar">
                <a href="/cp/page/edit?id=<?php echo $page->id ?>" title="Редактировать"><i class="icon-pencil"></i></a>
                <a href="#" title="Удалить" onclick="dDelete(this); return false;"><i class="icon-trash"></i></a>
              </div>
            </td>
          </tr>
        <?php endforeach; endif; ?>
      </tbody>
    </table>      
  </div>
  <div class="box-page-footer">
    <div class="box-controls">
      <div class="right">
       	<div class="btn"><button onclick="newPage(this); return false;" class="primary">Создать страницу</button></div>
      </div>
      <div id="progress" class="progress ajax-preloader-base"></div>
      <div id="control_text" class="box-controls-text"></div>
      <div class="clear-fix"></div>
    </div>
  </div>
  <div class="clear-fix"></div>
</div>

<style>
@import url(/css/jquery.cleditor.css);
@import url(/css/uploadify.css);
.modal-dialog {
  width: 820px;
}
.modal-dialog input {
  width: 280px;
}
</style>
<script src="/js/jquery/jquery.cleditor.min.js"></script>
<script src="/js/jquery/cleditor/plugins.audio.js"></script>
<script src="/js/jquery/cleditor/plugins.video.js"></script>
<script src="/js/jquery/jquery.uploadify.js"></script>
<script>
// New Page
var np = new goog.ui.Dialog(null, true);
// new page content
var npc = '<div class="box-message" id="new-page-message" style="display: none"></div>';
npc += '<div class="form">';
npc += '<dt id="title-label"><label for="title" class="required">Заголовок:</label></dt>';
npc += '<dd id="title-element"><input type="text" name="title" id="title" value=""></dd>';
npc += '<dt id="url-label"><label for="url" class="required">Адресс:</label></dt>';
npc += '<dd id="url-element"><input type="text" name="url" id="url" value=""><p class="description">/page/___</p></dd>';
npc += '<dd id="text-element"><textarea name="text" id="text"></textarea></dd>';
npc += '<h3>Прикрепленные файлы:</h3>';
npc += '<ul id="attachment-list" style="display: none"></ul>';
npc += '<dd><input name="fileToUpload[]" id="file_upload" class="MultiFile" type="file"/ ></dd>';
npc += '</div>';
np.setContent(npc);
np.setTitle('Создание новой страницы');
np.setButtonSet(
	new goog.ui.Dialog.ButtonSet()
	.addButton({key: 'create', caption: 'Создать'}, true)
	.addButton({key: 'cancel', caption: 'Отменить'}, false, true)
);
function newPage(el) {
	np.setVisible(true);
	var buttons = np.getButtonSet().getAllButtons();
	$.each(buttons, function(button){
		$(this).wrap('<div class="btn"/ >');
	});
    var w = np.getDialogElement();
    w.style.top = '30px';
    //$('.box-page-body').find('.table').hide().parent().append(npc);
	$("#title").focus();
	$("#text").cleditor({width:'', height:300, useCSS:true});
	$('#file_upload').uploadify({
		'formData': {'sid': '<?php echo $this->client->sid ?>'},
		'debug'	   : false,
		'buttonText': 'Выбрать файлы...',
		'removeCompleted': true,
		'fileSizeLimit' : '50MB',
		'fileTypeExts' : '*.gif; *.jpg; *.png; *.jpeg; *.mp3; *.avi; *.mp4; *.3gp; *.mpeg; *.txt; *.doc; *.docx; *.xls; *.xlsx; *.ppt; *.pptx; *.rtf; *.pdf; *.rar; *.psd',
        'swf'      : '/js/jquery/uploadify/uploadify.swf',
        'uploader' : '/cp/attachments/upload.attachment',
        'onUploadSuccess' : function(file, data, response) {
            var r = $.parseJSON(data);
            html = '<li id="'+r.id+'">';
            if (r.type == 'image') {
                html+= '<img src="/images/file-types/image.png" width="16"/ >';
            } else if (r.type == 'doc') {
            	html+= '<img src="/images/file-types/document.png" width="16"/ >';
            } else if (r.type == 'audio') {
            	html+= '<img src="/images/file-types/audio.png" width="16"/ >';
            } else if (r.type == 'video') {
            	html+= '<img src="/images/file-types/video.png" width="16"/ >';
            } else if (r.type == 'other') {
            	html+= '<img src="/images/file-types/other.png" width="16"/ >';
            }
            html+= '<span>' + r.url + '</span>';
            html+= '<span style="float: right;"><a href="' + r.url + '" target="_blank">Открыть</a> <a href="#" onclick="deleteAttach(this, '+r.id+'); return false;">Удалить</a><div id="progress" style="display: none;" class="progress ajax-preloader-base"></div></span>';
            html+= '</li>';
            $('#attachment-list').show().append(html);
        }
    });

	$('.form #url').keyup(function(){
		var val = $(this).val();
		var message = '/page/' + val;
		if (!val) {
			message = '<span style="color: red;">Пожалуйста, укажите адресс страницы!</span>';
		}
		var regexp = /^[a-z0-9_\-\.]*$/i;
		if (!regexp.test(val)) {
			message = '<span style="color: red;">Не верный формат адресса страницы! Только английский алфавит, цифры и знаки "-", "_", "."</span>';
		}
		$('#url-element .description').html(message);
	});
	
    $('#file_upload-button').css({
        'height': '20px',
        'line-height': '20px',
        'width': '90px'
    });
    goog.events.listen(np, goog.ui.Dialog.EventType.SELECT, function(e){
        if (e.key == 'create') {
        	var msgBox = goog.dom.$('new-page-message');
            var title = $('.form #title').val();
            var url = $('.form #url').val();
            var text = $('.form #text').val();
            if (!title) {
            	$('.form #title').focus();
            } else if (!url) {
            	$('.form #url').focus();
            }
            if (!title || !url || !text) {
            	msgBox.innerHTML = '<p>Все поля обязательны для заполнения.</p>';
				fx = new goog.fx.dom.FadeInAndShow(msgBox, 200);
				fx.play();
				return false;
            }
            var buttons = np.getButtonSet().getAllButtons();
        	$.each(buttons, function(button){
        		$(this).addClass('disabled');
        		$(this).attr('disabled', 'disabled');
        	});
        	var attachmentsElements = $('#attachment-list>li');
        	var attachments = [];
        	if (attachmentsElements.length > 0) {
	        	attachmentsElements.each(function(){
	            	attachments.push($(this).attr('id'));
	            });
        	}
            $.post('/cp/page/create', {
                	'title': title,
                	'url': url,
                	'text': text,
                	'attachments': attachments
                }, function(response){
                window.location = window.location;
            }, 'json');
			return false;
        }
    });
}

function deleteAttach(el, id) {
	$(el).parent().find('a').hide().parent().find('#progress').show();
	$.getJSON('/cp/attachments/delete.attach', {'id': id}, function(response){
		if (typeof response.status == 'string' && response.status == 'ok') {
			$(el).parent().parent().remove();
		}
	});
}

function dDelete(el) {
	var title = $(el).parent().parent().parent().find('td').eq(1).text();
	var id = $(el).parent().parent().parent().attr('id');
	var ddel = new goog.ui.Dialog(null, true);
	// new page content
	var ddelc = '<div>Вы действительно хотите удалить страницу <b>' + title + '</b>?</div>';
	ddel.setContent(ddelc);
	ddel.setTitle('Подтвердите удаление');
	ddel.setButtonSet(
		new goog.ui.Dialog.ButtonSet()
		.addButton({key: 'ok', caption: 'Да'}, true)
		.addButton({key: 'cancel', caption: 'Нет'}, false, true)
	);
	ddel.setVisible(true);
	$(ddel.getElement()).css({'width': '450px', 'left': (document.width / 2) - 225 + 'px'});
	goog.events.listen(ddel, goog.ui.Dialog.EventType.SELECT, function(e){
		if (e.key == 'ok') {
			window.location = '/cp/page/delete?id=' + id;
		}
	});
}
</script>
